<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/8/7 0007
 * Time: 上午 9:40
 */
    //>>  邮件发送内容
    $user = '18746440128@163.com';
    $pass = 'lisongxue163';
    $from = '18746440128@163.com';   //>>  发送人
    $to = $_POST['to'];      //>> 收件人
    $subject = $_POST['subject'];  //>> 主题
    $body = $_POST['content'];
    //>>  socket通讯工具工具

    //>> 1）domain 协议族 、type 类型 、prodocl 具体协议
    $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);  //>>  创建socket
    //>> 2、链接地址
    $conn = socket_connect($socket,'smtp.163.com','25');  //>> 链接服务器
    //var_dump($conn);
    $msg = '';
    if($conn){   //>> 判断是否链接
        $msg = read($socket,1024);  //>> 服务器返回的内容

        write($socket,"HELO 123\r\n");  //>>  \r\n 回车（发送完毕）
        $msg.= read($socket,1024);  //>> 服务器返回的内容
        //>>  登陆命令
        write($socket,"AUTH LOGIN\r\n");  //>>  \r\n 回车（发送完毕）
        $msg.= read($socket,1024);  //>> 服务器返回的内容
        //>>  输入用户名
        write($socket,base64_encode($user)."\r\n");  //>>  \r\n 回车（发送完毕）
        $msg.= read($socket,1024);  //>> 服务器返回的内容
        //>>  输入密码
        write($socket,base64_encode($pass)."\r\n");  //>>  \r\n 回车（发送完毕）
        $msg.= read($socket,1024);  //>> 服务器返回的内容
        if(stripos($msg,'235 Authentication successful') !==FALSE){ //>>  判断是否登陆成功
            write($socket,"MAIL FROM:<{$from}>\r\n"); //>>  发件人
            $msg.=read($socket,1024);

            write($socket,"RCPT TO:<{$to}>\r\n"); //>> 收件人
            $msg.=read($socket,1024);

            write($socket,"DATA\r\n"); //>> 准备发送的内容
            $msg.=read($socket,1024);

            //>>  发送头和正文
            $data = _getHeader($to,$from,$subject)."\r\n".$body;
            write($socket,$data);  //>>  发送的内容
            write($socket,"\r\n.\r\n");  //>>  点就是代表内容结束
            $msg.=read($socket,1024);

            write($socket,"QUIT\r\n");  //>> 退出
            $msg.=read($socket,1024);
        }else{
            echo '登陆失败！！';
        }

    }
    //>>  写入
    function write($socket,$cmd){
        socket_write($socket,$cmd);
    }
    //>>  服务器返回内容
    function read($socket,$len){
      return  socket_read($socket,$len).'<br />';
    }
    //>>  发送邮件的头部
    function _getHeader($to,$from,$subject){
        $header = "MIME-Version:1.0\r\n";  //>> 协议版本
        $header .= "Content-type:text/html;charset='utf-8'\r\n";//>>编码类型
        $header .= "Subject:".$subject."\r\n"; //>> 邮件主题
        $header .= "From:李松雪<".$from.">\r\n"; //>> 发件人
        $header .= "To:".$to."\r\n"; //>> 收件人
        $header .= "Date:".time()."\r\n"; //>> 时间
        return $header;
    }
    echo $msg;